package com.api.gbhg.lbj.dao;


import com.alibaba.fastjson.JSONObject;
import com.api.gbhg.lbj.tool.ExcelTools;
import com.api.gbhg.lbj.tool.Tools;
import com.api.gbhg.lbj.util.*;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.collections.CollectionUtils;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.*;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import weaver.conn.RecordSet;

import java.io.IOException;
import java.io.InputStream;

/**
 * @author lbj
 * @version 1.0
 * @description: TODO
 * @date 2021/1/15 11:42
 */
public class ExcelDao {
    private static final Logger logger = LoggerFactory.getLogger("gbhg");

    //根据分部名称查询分部id
    public static String getSBDWid(String sbdw){
        RecordSet rs = new RecordSet();
        sbdw=sbdw.substring(sbdw.indexOf("]")+1);
        String sql="select s.id from HrmSubCompany s where s.subcompanyname="+"'"+sbdw+"'";
        rs.executeQuery(sql);
        rs.next();
        return rs.getString("id");
    }
    //根据负责人名称查询id
    public static String getFZRid(String fzr){
        RecordSet rs = new RecordSet();
        String sql="select h.id from hrmResource h where h.lastname="+"'"+fzr+"'";
        rs.executeQuery(sql);
        rs.next();
        return rs.getString("id");
    }

    /**
     * 获取excel sheetname-项目支出计划 明细数据
     * @param fileId 附件id
     * @return
     */
    public List<ExcelBizHelper> getExceSheet4(Integer fileId){
        List<ExcelBizHelper> mapList=new ArrayList<>();
//        int offset=4;
//        while(true){
//            InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
//            List<Object> list3 = ExcelTools.findColumnRowId(is, "项目支出计划", null, "部门预算支出经济分类科目", offset);
//            //logger.info("导出数据是否正常="+list3);
//            if(list3.size()==0){
//
//                List<Object> list4 = ExcelTools.findColumnRowId(is, "项目支出计划", null, "部门预算支出经济分类科目", offset);
//
//                break;
//            }
//            String num = list3.get(0).toString();//序号
//            String deptBudge = list3.get(2).toString();//部门预算支出经济分类科目
//            if (StringUtils.isNotBlank(num) && deptBudge.contains("[")) {//判断序号是否为空是否有明细
//                //logger.info("序号不为空，有," + "list:" + list3);
//                ExcelBizHelper bizHelper = new ExcelBizHelper();
//                bizHelper.setYear(list3.get(1).toString());//年度
//                bizHelper.setDeptBudget(list3.get(2).toString());//部门预算支出经济分类科目
//
//                String subtotal = list3.get(6).toString();
//                if (StringUtils.isBlank(subtotal)){
//                    subtotal="0.00";
//                }
//                BigDecimal subtotal1=new BigDecimal(subtotal);
//                subtotal1 = subtotal1.multiply(new BigDecimal(10000));
//                bizHelper.setSubtotal(String.valueOf(subtotal1));//小计
//
//                String yearfristnum1 = list3.get(7).toString();
//                if (StringUtils.isBlank(yearfristnum1)){
//                    yearfristnum1="0.00";
//                }
//                BigDecimal yearfristnum=new BigDecimal(yearfristnum1);
//                yearfristnum = yearfristnum.multiply(new BigDecimal(10000));
//                bizHelper.setYearfristnum(String.valueOf(yearfristnum));//年初数
//
//                String adjusted1 = list3.get(8).toString();
//                if (StringUtils.isBlank(adjusted1)){
//                    adjusted1="0.00";
//                }
//                BigDecimal adjusted=new BigDecimal(adjusted1);
//                adjusted = adjusted.multiply(new BigDecimal(10000));
//                bizHelper.setAdjusted(String.valueOf(adjusted));//已调整数
//
//                String carryforwardfunds1 = list3.get(9).toString();
//                if (StringUtils.isBlank(carryforwardfunds1)){
//                    carryforwardfunds1="0.00";
//                }
//                BigDecimal carryforwardfunds=new BigDecimal(carryforwardfunds1);
//                carryforwardfunds = carryforwardfunds.multiply(new BigDecimal(10000));
//                bizHelper.setCarryforwardfunds(String.valueOf(carryforwardfunds));//结转资金
//
//                bizHelper.setGovernmentBudget(list3.get(10).toString());//对应的政府预算支出经济分类科目
//                mapList.add(bizHelper);
//            }
//            offset ++;
//            //logger.info("序号:"+num+"部门预算支出经济分类科目:"+deptBudge);
//        }

        int offset=4;
        while(true) {
            InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
            List<Object> list = ExcelTools.findColumnRowId(is, "项目支出计划", null, "部门预算支出经济分类科目", offset);
            logger.info("当前行 list:"+list);
            if (list.size() == 0) {
                break;
            }
            offset++;
        }
        offset=offset+5;
        logger.info("当前行:"+offset);
        while(true) {
            InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
            List<Object> list = ExcelTools.findColumnRowId(is, "项目支出计划", null, "部门预算支出经济分类科目", offset);
            logger.info("当前行 list:"+list);
            if (list.size() == 0) {
                break;
            }

            String num = list.get(0).toString();//序号
            String deptBudge = list.get(2).toString();//部门预算支出经济分类科目
            String year = list.get(1).toString();//年份
            System.err.println("num="+num+" deptBudge="+deptBudge+" year="+year);
            System.err.println("判断序号是否为空是否有明细 "+(StringUtils.isNotBlank(num) && deptBudge.contains("[") && year.equals(LocalDate.now().getYear()+"")));
            if (StringUtils.isNotBlank(num) && deptBudge.contains("[") && year.equals(LocalDate.now().getYear()+"")) {//判断序号是否为空是否有明细
                ExcelBizHelper bizHelper = new ExcelBizHelper();
                bizHelper.setYear(list.get(1).toString());//年度
                bizHelper.setDeptBudget(list.get(2).toString());//部门预算支出经济分类科目
//
                String subtotal = list.get(5).toString();//合计
                if (StringUtils.isBlank(subtotal)){
                    subtotal="0.00";
                }
                BigDecimal subtotal1=new BigDecimal(subtotal);
                subtotal1 = subtotal1.multiply(new BigDecimal(10000));
                bizHelper.setSubtotal(String.valueOf(subtotal1));//合计
//
                String tzq = list.get(6).toString();//调整前
                if (StringUtils.isBlank(tzq)){
                    tzq="0.00";
                }
                BigDecimal tzq1=new BigDecimal(tzq);
                tzq1 = tzq1.multiply(new BigDecimal(10000));
                bizHelper.setTzq(String.valueOf(tzq1));//调整前
//
                String tzh = list.get(7).toString();
                if (StringUtils.isBlank(tzh)){
                    tzh="0.00";
                }
                BigDecimal tzh1=new BigDecimal(tzh);
                tzh1 = tzh1.multiply(new BigDecimal(10000));
                bizHelper.setTzh(String.valueOf(tzh1));//调整后

                String ce = list.get(8).toString();
                if (StringUtils.isBlank(ce)){
                    ce="0.00";
                }
                BigDecimal ce1=new BigDecimal(ce);//差额
                ce1 = ce1.multiply(new BigDecimal(10000));
                bizHelper.setCe(String.valueOf(ce1));//差额
//
                String carryforwardfunds1 = list.get(9).toString();
                if (StringUtils.isBlank(carryforwardfunds1)){
                    carryforwardfunds1="0.00";
                }
                BigDecimal carryforwardfunds=new BigDecimal(carryforwardfunds1);
                carryforwardfunds = carryforwardfunds.multiply(new BigDecimal(10000));
                bizHelper.setCarryforwardfunds(String.valueOf(carryforwardfunds));//结转资金

                String jysfapzc = list.get(10).toString();//教育收费安排支出
                if (StringUtils.isBlank(jysfapzc)){
                    jysfapzc="0.00";
                }
                BigDecimal jysfapzc1=new BigDecimal(jysfapzc);
                jysfapzc1 = jysfapzc1.multiply(new BigDecimal(10000));
                bizHelper.setJysfapzc(String.valueOf(jysfapzc1));//教育收费安排支出

                String qtzj = list.get(11).toString();//其他资金
                if (StringUtils.isBlank(qtzj)){
                    qtzj="0.00";
                }
                BigDecimal qtzj1=new BigDecimal(qtzj);
                qtzj1 = qtzj1.multiply(new BigDecimal(10000));
                bizHelper.setQtzj(String.valueOf(qtzj1));//其他资金

//
                bizHelper.setGovernmentBudget(list.get(12).toString());//对应的政府预算支出经济分类科目
                mapList.add(bizHelper);
            }
            offset++;
        }

        logger.info("sheetname-项目支出计划:"+mapList+"mapList.size "+mapList.size());
        return mapList;
    }

    //获取excel sheetname-项目支出明细 明细数据
    public List<ExpenditureDetail> getExceSheet5(Integer fileId){
        List<ExpenditureDetail> mapList=new ArrayList<>();
        int offset=2;
        while(true){
            InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
            List<Object> list3 = ExcelTools.findColumnRowId(is, "项目支出明细", null, "项目活动", offset);
            //logger.info("项目支出明细导出数据是否正常="+list3);
            if(list3.size()==0){
                break;
            }
            String num = list3.get(0).toString();//序号
            if (StringUtils.isNotBlank(num)) {//判断序号是否为空是否有明细
                //logger.info("序号不为空，有," + "list:" + list3);
                ExpenditureDetail expenditureDetail=new ExpenditureDetail();
                expenditureDetail.setProjectActivities(list3.get(1).toString());//项目活动
                expenditureDetail.setProjectActivitiesDescribe(list3.get(2).toString());//项目活动描述
                expenditureDetail.setSubActivity(list3.get(3).toString());//子活动
                expenditureDetail.setSubActivityDescribe(list3.get(4).toString());//子活动描述
                expenditureDetail.setItemizedExpenditure(list3.get(5).toString());//分项支出
                expenditureDetail.setQuantityFrequency(list3.get(6).toString());//数量频率
                expenditureDetail.setPriceStandard(list3.get(7).toString());//价格标准

                String expenditurePlan1 = list3.get(8).toString();
                if (StringUtils.isBlank(expenditurePlan1)){
                    expenditurePlan1="0.00";
                }
                BigDecimal expenditurePlan=new BigDecimal(expenditurePlan1);
                expenditurePlan = expenditurePlan.multiply(new BigDecimal(10000));
                expenditureDetail.setExpenditurePlan(String.valueOf(expenditurePlan));//支出计划(万元)

                expenditureDetail.setRemarks(list3.get(9).toString());//备注
                mapList.add(expenditureDetail);
            }
            offset ++;
            logger.info("序号:"+num);
        }
        //logger.info(mapList+"mapList.size"+mapList.size());
        return mapList;
    }

    //获取excel sheetname-项目支出绩效目标申报表 明细数据
    public List<ProExpPertargetFromDetail> getExceSheet6(Integer fileId){
        List<ProExpPertargetFromDetail> mapList=new ArrayList<>();
        int offset=1;
        while(true){
            InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
            List<Object> list3 = ExcelTools.findColumnRowId(is, "项目支出绩效目标申报表", null, "一级指标", offset);
            logger.info("sheet6 项目支出绩效目标申报表="+list3);
            if(list3.size()==0){
                break;
            }
            ProExpPertargetFromDetail proExpPertargetFromDetail = new ProExpPertargetFromDetail();
            proExpPertargetFromDetail.setFirstlevelindicators(list3.get(1).toString());//一级指标
            proExpPertargetFromDetail.setSecondaryindicators(list3.get(2).toString());//二级指标
            proExpPertargetFromDetail.setThirdlevelindicators(list3.get(3).toString());//三级指标
            proExpPertargetFromDetail.setIndexvalue(list3.get(5).toString());//指标值 2022年3月10日由4改5
            proExpPertargetFromDetail.setSecondaryindicators2(list3.get(7).toString());//二级指标 2022年3月10日由6改7
            proExpPertargetFromDetail.setThirdlevelindicators2(list3.get(8).toString());//三级指标 2022年3月10日由7改8
            proExpPertargetFromDetail.setIndexvalue2(list3.get(10).toString());//指标值 2022年3月10日由8改10
            mapList.add(proExpPertargetFromDetail);
            offset ++;
        }
        logger.info("getExceSheet6 "+mapList);
        return mapList;
    }

    //获取excel sheetname-项目支出绩效目标执行监控表 明细数据
    public List<ProExpPertargetImpmonDetail> getExceSheet7(Integer fileId){
        List<ProExpPertargetImpmonDetail> proList=new ArrayList<>();
        int offset=2;
        while(true){
            InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
            List<Object> list3 = ExcelTools.findColumnRowId(is, "项目支出绩效目标执行监控", null, "一级指标", offset);
            logger.info("sheet7 项目支出绩效目标执行监控="+list3);
            if(list3.size()==0){
                break;
            }
                ProExpPertargetImpmonDetail pro=new ProExpPertargetImpmonDetail();
                pro.setFirstlevelindicators(list3.get(1).toString());
                pro.setSecondaryindicators(list3.get(2).toString());
                pro.setThirdlevelindicators(list3.get(3).toString());
                pro.setAnnualindexvalue(list3.get(4).toString());
                pro.setImplementation(list3.get(5).toString());
                pro.setExpectedcompletionyear(list3.get(6).toString());
                pro.setFundguarantee(list3.get(7).toString());
                pro.setSystemguarantee(list3.get(8).toString());
                pro.setPersonnelsupport(list3.get(9).toString());
                pro.setHardwareconditionguarantee(list3.get(10).toString());
                pro.setOther(list3.get(11).toString());
                pro.setReasons(list3.get(12).toString());
                pro.setSure(list3.get(13).toString());
                pro.setBeonthecards(list3.get(14).toString());
                pro.setImpossible(list3.get(15).toString());
                pro.setRemarks(list3.get(16).toString());
                proList.add(pro);
            offset ++;
        }
        logger.info("getExceSheet7 "+proList);
        return proList;
    }
    //获取excel sheetname-项目支出绩效自评表 明细数据
    public List<ProExpPertargetImpmonDetail> getExceSheet8(Integer fileId){
        List<ProExpPertargetImpmonDetail> proList=new ArrayList<>();
        int offset=1;
        while(true){
            InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
            List<Object> list3 = ExcelTools.findColumnRowId(is, "项目支出绩效自评表", null, "一级指标", offset);
            logger.info("sheet8 项目支出绩效自评表="+list3);
            String num1 = list3.get(0).toString();
            if(num1.equals("总分")){
                break;
            }
            ProExpPertargetImpmonDetail pro=new ProExpPertargetImpmonDetail();
            pro.setFirstlevelindicators(list3.get(1).toString());
            pro.setSecondaryindicators(list3.get(2).toString());
            pro.setThirdlevelindicators(list3.get(3).toString());
            pro.setAnnualindexvalue(list3.get(5).toString());
            pro.setActualcompletionvalue(list3.get(6).toString());
            pro.setScore(list3.get(7).toString());
            pro.setScore2(list3.get(8).toString());
            pro.setDeviationcauseanalysis(list3.get(9).toString());
            proList.add(pro);
            offset ++;
        }
        logger.info("getExceSheet8 "+proList);
        return proList;
    }
    //获取报销excel sheetindex-0
    public List<Subsidiaryledger> getExceSheetindex0(Integer fileId){
        List<Subsidiaryledger> subList=new ArrayList<>();
        int offset=1;
        while(true){
            InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
            List<Object> list3 = ExcelTools.findColumnRowId(is, 0, null, "凭证号", offset);
            logger.info("辅助明细账导出数据是否正常="+list3);
            if(list3.size()==0){
                break;
            }
            Subsidiaryledger subsidiaryledger=new Subsidiaryledger();
            subsidiaryledger.setMonth(list3.get(0).toString());
            subsidiaryledger.setDay(list3.get(1).toString());
            subsidiaryledger.setVoucherNo(list3.get(2).toString());
            subsidiaryledger.setSubjectcode(list3.get(3).toString());
            subsidiaryledger.setSubjectname(list3.get(4).toString());
            subsidiaryledger.setAuxiliaryitems(list3.get(5).toString());
            subsidiaryledger.setEntryname(list3.get(6).toString());
            subsidiaryledger.setExpenditurefunctionclassification(list3.get(7).toString());
            subsidiaryledger.setSectoreconomicclassification(list3.get(8).toString());
            subsidiaryledger.setRemark(list3.get(9).toString());
            subsidiaryledger.setReimbursementamount(list3.get(10).toString());
            subList.add(subsidiaryledger);
            offset ++;
        }
        logger.info(subList+"subList.size"+subList.size());
        return subList;
    }

    //获取excel明细数据
    public List<ExcelBizHelper> getExceData2(String file){
        List<ExcelBizHelper> mapList=new ArrayList<>();
        int offset=4;
        while(true){
            List<Object> list3 = ExcelTools.findColumnRowId(file, "项目支出计划", null, "部门预算支出经济分类科目", offset);
            if(list3.size()==0){
                break;
            }
            String num = list3.get(0).toString();//序号
            String deptBudge = list3.get(2).toString();//部门部门预算支出经济分类科目
            if (!num.equals("") && deptBudge.contains("[")) {//判断序号是否为空是否有明细
                logger.info("序号不为空，有," + "list:" + list3);
                ExcelBizHelper bizHelper = new ExcelBizHelper();
                bizHelper.setYear(list3.get(1).toString());//年度
                bizHelper.setDeptBudget(list3.get(2).toString());//部门预算支出经济分类科目
                bizHelper.setSubtotal(list3.get(6).toString());//小计
                bizHelper.setYearfristnum(list3.get(7).toString());//年初数
                bizHelper.setAdjusted(list3.get(8).toString());//已调整数
                bizHelper.setCarryforwardfunds(list3.get(9).toString());//结转资金
                bizHelper.setGovernmentBudget(list3.get(10).toString());//对应的政府预算支出经济分类科目
                mapList.add(bizHelper);
            }
            offset ++;
            System.out.println(num);
        }
        System.out.println(mapList+"mapList.size"+mapList.size());
        logger.info(mapList+"mapList.size"+mapList.size());
        return mapList;
    }
    //获取excel明细数据
    public List<ExcelBizHelper> getExceData(String file){
        List<ExcelBizHelper> mapList=new ArrayList<>();
        int offset=3;
        String nd="";//年度
        do{
            List<Object> list3 = ExcelTools.findColumnRowId(file, "项目支出计划", null, "部门预算支出经济分类科目", offset);
            nd = list3.get(1).toString();
            String deptBudge = list3.get(2).toString();//部门部门预算支出经济分类科目
            if (nd.equals(Tools.getCurrentYear()) && deptBudge.contains("[")) {//判断年度是否是当年且是否有明细
                logger.info("是当年，有," + "list:" + list3);
                ExcelBizHelper bizHelper = new ExcelBizHelper();
                bizHelper.setYear(list3.get(1).toString());
                bizHelper.setDeptBudget(list3.get(2).toString());
                bizHelper.setTotal(list3.get(5).toString());
                bizHelper.setGovernmentBudget(list3.get(8).toString());
                mapList.add(bizHelper);
            }
            offset ++;
        }while (nd.equals(Tools.getCurrentYear()));
        logger.info(mapList+"mapList.size"+mapList.size());
        return mapList;
    }
    //项目周期
    public static String getSelectxmzq(String xmzq){
        String id="";
        switch (xmzq){
            case "1年" : id="0";break;
            case "2年" : id="1";break;
            case "3年" : id="2";break;
            case "4年" : id="3";break;
            case "5年" : id="4";break;
            default: id="5" ; break;
        }
        return id;
    }
    //是否
    public static String getSelectWhether(String parameter){
        String id="";
        if (parameter.equals("否")){
            id="0";
        }else if (parameter.equals("是")){
            id="1";
        }
        return id;
    }
    //项目类别
    public static String getXmtype(String xmlb){
        String type="";
        if (xmlb.equals("重大改革发展项目")){
            type="0";
        }else if (xmlb.equals("专项业务费项目")){
            type="1";
        }else if (xmlb.equals("其他项目")){
            type="2";
        }
        return type;
    }
    //基建属性
    public static String getjjsx(String jjsx){
        String id="";
        if (jjsx.equals("发展改革委安排的基建项目")){
            id="0";
        }else if (jjsx.equals("中央财政安排的基建项目")){
            id="1";
        }else if (jjsx.equals("其他主管部门安排的基建项目")){
            id="2";
        }else {
            id="3";
        }
        return id;
    }
    //密级
    public static String getmj(String mj){
        String id="";
        if (mj.equals("无")||mj.equals("非密")){
            id="0";
        }else if (mj.equals("秘密")){
            id="1";
        }else if (mj.equals("机密")){
            id="2";
        }
        return id;
    }
    //保密期限单位
    public static String getbmqxdw(String bmqxdw){
        String id="";
        if (bmqxdw.equals("无")){
            id="0";
        }else if (bmqxdw.equals("年")){
            id="1";
        }else if (bmqxdw.equals("个月")){
            id="2";
        }else if (bmqxdw.equals("长期")){
            id="3";
        }
        return id;
    }
    //sheetname--项目基本信息
    public Map<String,Object> getSheet1Data(Integer fileId){
        Map<String, Object> params = new HashMap<>();
        InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is1 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is2 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is3 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is4 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is5 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is6 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is7 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is8 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is9 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is10 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is11 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is12 =  weaver.file.ImageFileManager.getInputStreamById(fileId);


        List<Object> yjxmlist = ExcelTools.findColumnRowId(is,"项目基本信息",null, "所属一级项目", 0);
        logger.info("sheet1 项目信息"+JSONObject.toJSONString(yjxmlist));
        String ssyjxm = yjxmlist.get(1).toString();//所属一级项目
        String kmdm = yjxmlist.get(3).toString();//科目代码
        if (StringUtils.isNotBlank(kmdm)) {
            kmdm = kmdm.substring(kmdm.indexOf("[") + 1, kmdm.indexOf("]"));
        }


        List<Object> sbdwlist = ExcelTools.findColumnRowId(is1,"项目基本信息",null, "项目单位", 0);
        logger.info("sbdwlist---:"+sbdwlist);
        String sbdw = sbdwlist.get(1).toString();//获取项目单位
        String xmdm = sbdwlist.get(3).toString();//获取项目代码
        logger.info("sbdw:"+sbdw+"xmdm:"+xmdm);

        List<Object> xmlblist = ExcelTools.findColumnRowId(is2,"项目基本信息",null, "项目类别", 0);
        String xmlb = xmlblist.get(1).toString();//项目类别
        String jjsx = xmlblist.get(3).toString();//基金属性

        List<Object> jhkszxnflist = ExcelTools.findColumnRowId(is3,"项目基本信息",null, "计划开始执行年份", 0);
        logger.info("ndlist---:"+jhkszxnflist);
        String jhkszxnf = jhkszxnflist.get(1).toString();//年度
        String xmzq = jhkszxnflist.get(3).toString();//项目周期
        logger.info("nd:"+jhkszxnf);

        List<Object> zxpfnflist = ExcelTools.findColumnRowId(is4,"项目基本信息",null, "最新批复年份", 0);
        String zxpfnf = zxpfnflist.get(1).toString().isEmpty()?"NULL":zxpfnflist.get(1).toString();//最新批复年份 2022年3月21日16:02:41 huangwm
        String mj = zxpfnflist.get(3).toString();//密级

        List<Object> bmqxdwlist = ExcelTools.findColumnRowId(is5,"项目基本信息",null, "保密期限单位", 0);
        String bmqxdw = bmqxdwlist.get(1).toString();//保密期限单位
        String bmqx = bmqxdwlist.get(3).toString();//保密期限
        if (bmqx.equals("")){
            bmqx="0";
        }
        List<Object> sfkyxmlist = ExcelTools.findColumnRowId(is6,"项目基本信息",null, "是否科研项目", 0);
        String sfkyxm = sfkyxmlist.get(1).toString();//是否科研项目

        List<Object> xmmclist = ExcelTools.findColumnRowId(is7,"项目基本信息",null,"项目名称", 0);
        logger.info("xmmclist---:"+xmmclist);
        String xmmc = xmmclist.get(1).toString();//获取项目名称
        logger.info("xmmc----:"+xmmc);

        List<Object> fzrlist = ExcelTools.findColumnRowId(is8,"项目基本信息",null, "项目负责人", 0);
        logger.info("fzrlist---:"+fzrlist);
        String fzr = fzrlist.get(1).toString();//负责人
        String zw = fzrlist.get(3).toString();//职务
        logger.info("fzr:"+fzr);

        List<Object> dhlist = ExcelTools.findColumnRowId(is9,"项目基本信息",null, "联系人电话", 0);
        logger.info("dhlist---:"+dhlist);
        String lxdh = dhlist.get(1).toString();//联系人电话
        logger.info("lxdh:"+lxdh);

        List<Object> sfhxbslist = ExcelTools.findColumnRowId(is10,"项目基本信息",null, "是否横向标识", 0);
        String sfhxbs = sfhxbslist.get(1).toString();//是否横向标识
        String czshzt = sfhxbslist.get(3).toString();//财政审核状态

        List<Object> sfbssbczklist = ExcelTools.findColumnRowId(is11,"项目基本信息",null, "是否标识上报财政库", 0);
        String sfbssbczk = sfbssbczklist.get(1).toString();//是否标识上报财政库

        List<Object> dkbslist = ExcelTools.findColumnRowId(is12,"项目基本信息",null, "打捆标识", 0);
        String dkbs = dkbslist.get(1).toString();//打捆标识

        params.put("ssyjxm",ssyjxm);//所属一级项目
        params.put("kmdm",Tools.getExceluf_gnkmId(kmdm));//科目代码
        params.put("xmdm",xmdm);//项目代码
        params.put("sbdw",sbdw);////获取项目单位
        params.put("xmlb",getXmtype(xmlb));//项目类别
        params.put("jjsx",getjjsx(jjsx));//基建属性
        params.put("jhkszxnf",jhkszxnf);//计划开始执行年份
        params.put("xmzq",getSelectxmzq(xmzq));//项目周期
        params.put("zxpfnf",zxpfnf);//最新批复年份
        params.put("mj",getmj(mj));//密级
        params.put("bmqxdw",getbmqxdw(bmqxdw));//保密期限单位
        params.put("bmqx",bmqx);//保密期限
        params.put("sfkyxm",getSelectWhether(sfkyxm));//是否科研项目
        params.put("xmmc",xmmc);//获取项目名称
        params.put("fzr",fzr);//负责人
        params.put("zw",zw);//职务
        params.put("lxdh",lxdh);//联系人电话
        params.put("sfhxbs",getSelectWhether(sfhxbs));//是否横向标识
        params.put("czshzt",czshzt);//财政审核状态
        params.put("sfbssbczk",getSelectWhether(sfbssbczk));//是否标识上报财政库
        params.put("dkbs",dkbs);//打捆标识
        return params;
    }
    //sheetname--项目支出立项依据
    public Map<String,Object> getSheet2Data(Integer fileId){
        logger.info("进入sheetname项目支出立项依据----");
        Map<String, Object> params = new HashMap<>();
        InputStream is1 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is2 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is3 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is4 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is5 =  weaver.file.ImageFileManager.getInputStreamById(fileId);

        List<Object> xmmclist = ExcelTools.findColumnRowId(is1,"项目支出立项依据",null, "项目名称", 0);
        String xxmc1 = xmmclist.get(3).toString();//项目名称
        logger.info("sheet2项目名称:" +xxmc1);

        List<Object> xmdwlist = ExcelTools.findColumnRowId(is2,"项目支出立项依据",null, "项目单位", 0);
        String xmdw = xmdwlist.get(3).toString();//项目单位
        logger.info("sheet2项目单位:" +xmdw);

        List<Object> zgdwjdmlist = ExcelTools.findColumnRowId(is3,"项目支出立项依据",null, "主管单位及代码", 0);
        String zgdwjdm = zgdwjdmlist.get(3).toString();//主管单位及代码
        String xmlb = zgdwjdmlist.get(5).toString();//项目类别
        logger.info("sheet2主管单位及代码:" +zgdwjdm+"项目类别:"+xmlb);

        List<Object> xmksnflist = ExcelTools.findColumnRowId(is4,"项目支出立项依据",null, "项目开始年份", 0);
        String xmksnf = xmksnflist.get(3).toString();//项目开始年份
        String xmzq = xmksnflist.get(5).toString();//项目周期
        logger.info("sheet2项目开始年份:" +xmksnf+"项目周期:"+xmzq);

        List<Object> xmzclxyjlist = ExcelTools.findColumnRowId(is5,"项目支出立项依据",null, "项目开始年份", 1);
        String xmzclxyj = xmzclxyjlist.get(2).toString();//项目支出立项依据
        //logger.info("sheet2项目支出立项依据:" +xmzclxyj);

        params.put("xmmc",xxmc1);//项目名称
        params.put("xmdw",xmdw);//项目单位
        params.put("zgdwjdm",zgdwjdm);//主管单位及代码
        params.put("xmlb",getXmtype(xmlb));//项目类别
        params.put("xmksnf",xmksnf);//项目开始年份
        params.put("xmzq",getSelectxmzq(xmzq));//项目周期
        params.put("xmzclxyj",xmzclxyj);//项目支出立项依据
        return params;
    }
    //sheetname--项目支出实施方案
    public Map<String,Object> getSheet3Data(Integer fileId){
        Map<String, Object> params = new HashMap<>();
        InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is1 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is2 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is3 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is4 =  weaver.file.ImageFileManager.getInputStreamById(fileId);

        List<Object> xmmclist = ExcelTools.findColumnRowId(is,"项目支出实施方案",null, "项目名称", 0);
        String xxmc = xmmclist.get(3).toString();//项目名称

        List<Object> xmdwlist = ExcelTools.findColumnRowId(is1,"项目支出实施方案",null, "项目单位", 0);
        String xmdw = xmdwlist.get(3).toString();//项目单位

        List<Object> zgdwjdmlist = ExcelTools.findColumnRowId(is2,"项目支出实施方案",null, "主管单位及代码", 0);
        String zgdwjdm = zgdwjdmlist.get(3).toString();//主管单位及代码
        String xmlb = zgdwjdmlist.get(5).toString();//项目类别

        List<Object> xmksnflist = ExcelTools.findColumnRowId(is3,"项目支出实施方案",null, "项目开始年份", 0);
        String xmksnf = xmksnflist.get(3).toString();//项目开始年份
        String xmzq = xmksnflist.get(5).toString();//项目周期

        List<Object> xmzcssfalist = ExcelTools.findColumnRowId(is4,"项目支出实施方案",null, "项目开始年份", 1);
        String xmzcssfa = xmzcssfalist.get(2).toString();//项目支出实施方案

        params.put("xmmc",xxmc);//项目名称
        params.put("xmdw",xmdw);//项目单位
        params.put("zgdwjdm",zgdwjdm);//主管单位及代码
        params.put("xmlb",getXmtype(xmlb));//项目类别
        params.put("xmksnf",xmksnf);//项目开始年份
        params.put("xmzq",getSelectxmzq(xmzq));//项目周期
        params.put("xmzcssfa",xmzcssfa);//项目支出实施方案
        return params;
    }
    //sheetname--项目支出绩效目标申报表
    public Map<String,Object> getSheet6Data(Integer fileId){
        Map<String, Object> params = new HashMap<>();
        InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is1 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is2 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is3 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is4 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is5 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is6 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is7 =  weaver.file.ImageFileManager.getInputStreamById(fileId);

        List<Object> xmmclist = ExcelTools.findColumnRowId(is,"项目支出绩效目标申报表",null, "项目名称", 0);
        logger.info("sheet6 项目名称"+ JSONObject.toJSONString(xmmclist));
        String xmmc = xmmclist.get(2).toString();//项目名称 2022年3月10日由3改2
        logger.info("sheet6,项目名称:"+xmmc);

        List<Object> zgbmjdmlist = ExcelTools.findColumnRowId(is1,"项目支出绩效目标申报表",null, "主管部门及代码", 0);
        logger.info("sheet6 主管部门及代码"+ JSONObject.toJSONString(zgbmjdmlist));
        String zgbmjdm = zgbmjdmlist.get(3).toString();//主管部门及代码 022年3月10日由3改2
        String ssdw = zgbmjdmlist.get(8).toString();//实施单位 022年3月10日由7改8
        logger.info("sheet6,主管部门及代码:"+zgbmjdm+",实施单位:"+ssdw);

        List<Object> xmsxlist = ExcelTools.findColumnRowId(is2,"项目支出绩效目标申报表",null, "项目属性", 0);
        logger.info("sheet6 项目属性"+ JSONObject.toJSONString(xmsxlist));
        String xmsx = xmsxlist.get(2).toString();//项目属性 2022年3月10日由3改2
        String xmzq = xmsxlist.get(8).toString();//项目周期 022年3月10日由7改8
        logger.info("sheet6,项目属性:"+xmsx+",项目周期:"+xmzq);

        List<Object> zqzjzelist = ExcelTools.findColumnRowId(is3,"项目支出绩效目标申报表",null, "中期资金总额：", 0);
        logger.info("sheet6 中期资金总额"+ JSONObject.toJSONString(zqzjzelist));
        String zqzjze = zqzjzelist.get(4).toString();//中期资金总额
        String ndzjze = zqzjzelist.get(9).toString();//年度资金总额 2022年3月10日 由7改为9
        if (StringUtils.isBlank(zqzjze)){
            zqzjze="0.00";
        }
        if (StringUtils.isBlank(ndzjze)){
            ndzjze="0.00";
        }
        BigDecimal zqzjze1=new BigDecimal(zqzjze);
        BigDecimal ndzjze1=new BigDecimal(ndzjze);
        ndzjze1 = ndzjze1.multiply(new BigDecimal(10000));
        zqzjze1 = zqzjze1.multiply(new BigDecimal(10000));
        logger.info("sheet6,中期资金总额:"+zqzjze1+",年度资金总额:"+ndzjze1);

        List<Object> zqqzczbklist = ExcelTools.findColumnRowId(is4,"项目支出绩效目标申报表",null, "其中：财政拨款", 0);
        logger.info("sheet6 其中：财政拨款"+ JSONObject.toJSONString(zqqzczbklist));
        String zqqzczbk = zqqzczbklist.get(4).toString();//中期-其中：财政拨款
        String ndqzczbk = zqqzczbklist.get(9).toString();//年度-其中：财政拨款 2022年3月10日 由7改为9

        if (StringUtils.isBlank(zqqzczbk)){
            zqqzczbk="0.00";
        }
        if (StringUtils.isBlank(ndqzczbk)){
            ndqzczbk="0.00";
        }
        BigDecimal ndqzczbk1=new BigDecimal(ndqzczbk);
        BigDecimal zqqzczbk1=new BigDecimal(zqqzczbk);
        ndqzczbk1 = ndqzczbk1.multiply(new BigDecimal(10000));
        zqqzczbk1 = zqqzczbk1.multiply(new BigDecimal(10000));

        logger.info("sheet6,中期-其中：财政拨款:"+zqqzczbk1+",年度-其中：财政拨款:"+ndqzczbk1);

        List<Object> snjzzjlist = ExcelTools.findColumnRowId(is5,"项目支出绩效目标申报表",null, "上年结转资金", 0);
        logger.info("sheet6 上年结转资金"+ JSONObject.toJSONString(snjzzjlist));
        String zqsnjzzj = snjzzjlist.get(4).toString();//中期-上年结转资金
        String ndsnjzzj = snjzzjlist.get(9).toString();//年度-上年结转资金 2022年3月10日 由7改为9

        if (StringUtils.isBlank(zqsnjzzj)){
            zqsnjzzj="0.00";
        }
        if (StringUtils.isBlank(ndsnjzzj)){
            ndsnjzzj="0.00";
        }
        BigDecimal ndsnjzzj1=new BigDecimal(ndsnjzzj);
        BigDecimal zqsnjzzj1=new BigDecimal(zqsnjzzj);
        ndsnjzzj1 = ndsnjzzj1.multiply(new BigDecimal(10000));
        zqsnjzzj1 = zqsnjzzj1.multiply(new BigDecimal(10000));
        logger.info("sheet6,中期-上年结转资金:"+zqsnjzzj1+",年度-上年结转资金:"+ndsnjzzj1);

        List<Object> qtzjlist = ExcelTools.findColumnRowId(is6,"项目支出绩效目标申报表",null, "其他资金", 0);
        logger.info("sheet6 其他资金"+ JSONObject.toJSONString(qtzjlist));
        String zqqtzj = qtzjlist.get(4).toString();//中期-其他资金
        String ndqtzj = qtzjlist.get(9).toString();//年度-其他资金 2022年3月10日 由7改为9

        if (StringUtils.isBlank(zqqtzj)){
            zqqtzj="0.00";
        }
        if (StringUtils.isBlank(ndqtzj)){
            ndqtzj="0.00";
        }
        BigDecimal zqqtzj1=new BigDecimal(zqqtzj);
        BigDecimal ndqtzj1=new BigDecimal(ndqtzj);
        zqqtzj1 = zqqtzj1.multiply(new BigDecimal(10000));
        ndqtzj1 = ndqtzj1.multiply(new BigDecimal(10000));
        logger.info("sheet6,中期-其他资金:"+zqqtzj1+",年度-其他资金:"+ndqtzj1);

        List<Object> ztmblist = ExcelTools.findColumnRowId(is7,"项目支出绩效目标申报表",null, "中期目标", 1);
        logger.info("sheet6 中期目标"+ JSONObject.toJSONString(ztmblist));
        String zqmb = ztmblist.get(1).toString();//中期目标
        String ndmb = ztmblist.get(7).toString();//年度目标 2022年3月10日由5改为7
        logger.info("sheet6,中期目标:"+zqmb+",年度目标:"+ndmb);

        params.put("xmmc",xmmc);//项目名称
        params.put("zgbmjdm",zgbmjdm);//主管部门及代码
        params.put("ssdw",ssdw);//实施单位
        params.put("xmsx",xmsx);//项目属性
        params.put("xmzq",getSelectxmzq(xmzq));//项目周期
        params.put("zqzjze",zqzjze1);//中期资金总额
        params.put("ndzjze",ndzjze1);//年度资金总额
        params.put("zqqzczbk",zqqzczbk1);//中期-其中：财政拨款
        params.put("ndqzczbk",ndqzczbk1);//年度-其中：财政拨款
        params.put("zqsnjzzj",zqsnjzzj1);//中期-上年结转资金
        params.put("ndsnjzzj",ndsnjzzj1);//年度-上年结转资金
        params.put("zqqtzj",zqqtzj1);//中期-其他资金
        params.put("ndqtzj",ndqtzj1);//年度-其他资金
        params.put("zqmb",zqmb);//中期目标
        params.put("ndmb",ndmb);//年度目标
        return params;
    }
    //sheetname--项目支出绩效目标执行监控
    public Map<String,Object> getSheet7Data(Integer fileId){
        Map<String, Object> params = new HashMap<>();
        InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is1 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is2 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is3 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is4 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is5 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is6 =  weaver.file.ImageFileManager.getInputStreamById(fileId);


        List<Object> xmmclist = ExcelTools.findColumnRowId(is,"项目支出绩效目标执行监控",null, "项目名称", 0);
        String xxmc = xmmclist.get(3).toString();//项目名称
        logger.info("项目名称:"+xxmc);

        List<Object> zgbmjdmlist = ExcelTools.findColumnRowId(is1,"项目支出绩效目标执行监控",null, "主管部门及代码", 0);
        String zgbmjdm = zgbmjdmlist.get(3).toString();//主管部门及代码
        String ssdw = zgbmjdmlist.get(7).toString();//实施单位
        logger.info("主管部门及代码:"+zgbmjdm+",实施单位:"+ssdw);

        List<Object> ndzjzelist = ExcelTools.findColumnRowId(is2,"项目支出绩效目标执行监控",null, "年度资金总额：", 0);
        String ncyss = ndzjzelist.get(7).toString();//年初预算数1
        String zxs = ndzjzelist.get(10).toString();//1-7月执行数1
        String zxl1 = ndzjzelist.get(13).toString();//1-7月执行率1
        zxl1=zxl1.replace("%","");
        String qnzxs = ndzjzelist.get(15).toString();//全年预计执行数1

        if (StringUtils.isBlank(ncyss)){
            ncyss="0.00";
        }
        if (StringUtils.isBlank(zxs)){
            zxs="0.00";
        }
        if (StringUtils.isBlank(qnzxs)){
            qnzxs="0.00";
        }
        BigDecimal ncyss1=new BigDecimal(ncyss);
        BigDecimal zxs1=new BigDecimal(zxs);
        BigDecimal qnzxs1=new BigDecimal(qnzxs);
        ncyss1 = ncyss1.multiply(new BigDecimal(10000));
        zxs1 = zxs1.multiply(new BigDecimal(10000));
        qnzxs1 = qnzxs1.multiply(new BigDecimal(10000));
        logger.info("年初预算数1:"+ncyss1+",1-7月执行数1:"+zxs1+",1-7月执行率1:"+zxl1+",全年预计执行数1:"+qnzxs1);

        List<Object> qzczbklist = ExcelTools.findColumnRowId(is3,"项目支出绩效目标执行监控",null, "其中：财政拨款", 0);
        String ncyss22 = qzczbklist.get(7).toString();//年初预算数2
        String zxs22 = qzczbklist.get(10).toString();//1-7月执行数2
        String zxl2 = qzczbklist.get(13).toString();//1-7月执行率2
        zxl2=zxl2.replace("%","");
        String qnzxs22 = qzczbklist.get(15).toString();//全年预计执行数2
        if (StringUtils.isBlank(ncyss22)){
            ncyss22="0.00";
        }
        if (StringUtils.isBlank(zxs22)){
            zxs22="0.00";
        }
        if (StringUtils.isBlank(qnzxs22)){
            qnzxs22="0.00";
        }
        BigDecimal ncyss2=new BigDecimal(ncyss22);
        BigDecimal zxs2=new BigDecimal(zxs22);
        BigDecimal qnzxs2=new BigDecimal(qnzxs22);
        ncyss2 = ncyss2.multiply(new BigDecimal(10000));
        zxs2 = zxs2.multiply(new BigDecimal(10000));
        qnzxs2 = qnzxs2.multiply(new BigDecimal(10000));
        logger.info("年初预算数2:"+ncyss2+",1-7月执行数2:"+zxs2+",1-7月执行率2:"+zxl2+",全年预计执行数2:"+qnzxs2);


        List<Object> snjzzjlist = ExcelTools.findColumnRowId(is4,"项目支出绩效目标执行监控",null, "上年结转资金", 0);
        String ncyss33 = snjzzjlist.get(7).toString();//年初预算数3
        String zxs33 = snjzzjlist.get(10).toString();//1-7月执行数3
        String zxl3 = snjzzjlist.get(13).toString();//1-7月执行率3
        zxl3=zxl3.replace("%","");
        String qnzxs33 = snjzzjlist.get(15).toString();//全年预计执行数3

        if (StringUtils.isBlank(ncyss33)){
            ncyss33="0.00";
        }
        if (StringUtils.isBlank(zxs33)){
            zxs33="0.00";
        }
        if (StringUtils.isBlank(qnzxs33)){
            qnzxs33="0.00";
        }
        BigDecimal ncyss3=new BigDecimal(ncyss33);
        BigDecimal zxs3=new BigDecimal(zxs33);
        BigDecimal qnzxs3=new BigDecimal(qnzxs33);
        ncyss3 = ncyss3.multiply(new BigDecimal(10000));
        zxs3 = zxs3.multiply(new BigDecimal(10000));
        qnzxs3 = qnzxs3.multiply(new BigDecimal(10000));
        logger.info("年初预算数3:"+ncyss3+",1-7月执行数3:"+zxs3+",1-7月执行率3:"+zxl3+",全年预计执行数3:"+qnzxs3);
    
        List<Object> qtzjlist = ExcelTools.findColumnRowId(is5,"项目支出绩效目标执行监控",null, "其他资金", 0);
        String ncyss44 = qtzjlist.get(7).toString();//年初预算数4
        String zxs44 = qtzjlist.get(10).toString();//1-7月执行数4
        String zxl4 = qtzjlist.get(13).toString();//1-7月执行率4
        zxl4=zxl4.replace("%","");
        String qnzxs44 = qtzjlist.get(15).toString();//全年预计执行数4

        if (StringUtils.isBlank(ncyss44)){
            ncyss44="0.00";
        }
        if (StringUtils.isBlank(zxs44)){
            zxs44="0.00";
        }
        if (StringUtils.isBlank(qnzxs44)){
            qnzxs44="0.00";
        }
        BigDecimal ncyss4=new BigDecimal(ncyss44);
        BigDecimal zxs4=new BigDecimal(zxs44);
        BigDecimal qnzxs4=new BigDecimal(qnzxs44);
        ncyss4 = ncyss4.multiply(new BigDecimal(10000));
        zxs4 = zxs4.multiply(new BigDecimal(10000));
        qnzxs4 = qnzxs4.multiply(new BigDecimal(10000));
        logger.info("年初预算数4:"+ncyss4+",1-7月执行数4:"+zxs4+",1-7月执行率4:"+zxl4+",全年预计执行数4:"+qnzxs4);

        List<Object> ndztmblist = ExcelTools.findColumnRowId(is6,"项目支出绩效目标执行监控",null, "年度总体目标", 0);
        String ndztmb = ndztmblist.get(1).toString();//年度总体目标
        //logger.info("年度总体目标:"+ndztmb);

        params.put("xmmc",xxmc);//项目名称
        params.put("zgbmjdm",zgbmjdm);//主管部门及代码
        params.put("ssdw",ssdw);//实施单位
        params.put("ncyss1",ncyss1);//年初预算数1
        params.put("ncyss2",ncyss2);//年初预算数2
        params.put("ncyss3",ncyss3);//年初预算数3
        params.put("ncyss4",ncyss4);//年初预算数4
        params.put("zxs1",zxs1);//1-7月执行数1
        params.put("zxs2",zxs2);//1-7月执行数2
        params.put("zxs3",zxs3);//1-7月执行数3
        params.put("zxs4",zxs4);//1-7月执行数4
        params.put("zxl1",zxl1);//1-7月执行率1
        params.put("zxl2",zxl2);//1-7月执行率2
        params.put("zxl3",zxl3);//1-7月执行率3
        params.put("zxl4",zxl4);//1-7月执行率4
        params.put("qnzxs1",qnzxs1);//全年预计执行数1
        params.put("qnzxs2",qnzxs2);//全年预计执行数2
        params.put("qnzxs3",qnzxs3);//全年预计执行数3
        params.put("qnzxs4",qnzxs4);//全年预计执行数4
        params.put("ndztmb",ndztmb);//年度总体目标
        return params;
    }
    //sheetname--项目支出绩效自评表
    public Map<String,Object> getSheet8Data(Integer fileId){
        Map<String, Object> params = new HashMap<>();
        InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is1 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is2 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is3 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is4 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is5 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is6 =  weaver.file.ImageFileManager.getInputStreamById(fileId);


        List<Object> xmmclist = ExcelTools.findColumnRowId(is,"项目支出绩效自评表",null, "项目名称", 0);
        String xxmc = xmmclist.get(2).toString();//项目名称
        logger.info("项目名称:"+xxmc);
        List<Object> zgbmlist = ExcelTools.findColumnRowId(is1,"项目支出绩效自评表",null, "主管部门", 0);
        String zgbm = zgbmlist.get(2).toString();//主管部门
        String ssdw = zgbmlist.get(6).toString();//实施单位
        logger.info("主管部门:"+zgbm+",实施单位:");
        List<Object> ndzjzelist = ExcelTools.findColumnRowId(is2,"项目支出绩效自评表",null, "年度资金总额：", 0);
        String ncyss11 = ndzjzelist.get(4).toString();//年初预算数1
        String qnyss11 = ndzjzelist.get(5).toString();//全年预算数1
        String qnzxs11 = ndzjzelist.get(6).toString();//全年执行数1
        String fz1 = ndzjzelist.get(7).toString();//分值1
        String zxl1 = ndzjzelist.get(8).toString();//执行率1
        String df1 = ndzjzelist.get(10).toString();//得分1
        zxl1=zxl1.replace("%","");
        fz1=fz1.replace("--","0.0");
        df1=df1.replace("--","0.0");

        if (StringUtils.isBlank(ncyss11)){
            ncyss11="0.00";
        }
        if (StringUtils.isBlank(qnyss11)){
            qnyss11="0.00";
        }
        if (StringUtils.isBlank(qnzxs11)){
            qnzxs11="0.00";
        }
        BigDecimal ncyss1=new BigDecimal(ncyss11);
        BigDecimal qnyss1=new BigDecimal(qnyss11);
        BigDecimal qnzxs1=new BigDecimal(qnzxs11);
        ncyss1 = ncyss1.multiply(new BigDecimal(10000));
        qnyss1 = qnyss1.multiply(new BigDecimal(10000));
        qnzxs1 = qnzxs1.multiply(new BigDecimal(10000));
        logger.info("年初预算数1:"+ncyss1+",全年预算数1:"+qnyss1+",全年执行数1:"+qnzxs1+",分值1:"+fz1+",执行率1:"+zxl1+",得分1:"+df1);

        List<Object> qzczbklist = ExcelTools.findColumnRowId(is3,"项目支出绩效自评表",null, "其中：财政拨款", 0);
        String ncyss22 = qzczbklist.get(4).toString();//年初预算数2
        String qnyss22 = qzczbklist.get(5).toString();//全年预算数2
        String qnzxs22 = qzczbklist.get(6).toString();//全年执行数2
        String fz2 = qzczbklist.get(7).toString();//分值2
        String zxl2 = qzczbklist.get(8).toString();//执行率2
        String df2 = qzczbklist.get(10).toString();//得分2
        zxl2=zxl2.replace("%","");
        fz2=fz2.replace("--","0.0");
        df2=df2.replace("--","0.0");

        if (StringUtils.isBlank(ncyss22)){
            ncyss22="0.00";
        }
        if (StringUtils.isBlank(qnyss22)){
            qnyss22="0.00";
        }
        if (StringUtils.isBlank(qnzxs22)){
            qnzxs22="0.00";
        }
        BigDecimal ncyss2=new BigDecimal(ncyss22);
        BigDecimal qnyss2=new BigDecimal(qnyss22);
        BigDecimal qnzxs2=new BigDecimal(qnzxs22);
        ncyss2 = ncyss2.multiply(new BigDecimal(10000));
        qnyss2 = qnyss2.multiply(new BigDecimal(10000));
        qnzxs2 = qnzxs2.multiply(new BigDecimal(10000));
        logger.info("年初预算数2:"+ncyss2+",全年预算数2:"+qnyss2+",全年执行数2:"+qnzxs2+",分值2:"+fz2+",执行率2:"+zxl2+",得分2:"+df2);

        List<Object> snjzzjlist = ExcelTools.findColumnRowId(is4,"项目支出绩效自评表",null, "上年结转资金", 0);
        String ncyss33 = snjzzjlist.get(4).toString();//年初预算数3
        String qnyss33 = snjzzjlist.get(5).toString();//全年预算数3
        String qnzxs33 = snjzzjlist.get(6).toString();//全年执行数3
        String fz3 = snjzzjlist.get(7).toString();//分值3
        String zxl3 = snjzzjlist.get(8).toString();//执行率3
        String df3 = snjzzjlist.get(10).toString();//得分3
        zxl3=zxl3.replace("%","");
        fz3=fz3.replace("--","0.0");
        df3=df3.replace("--","0.0");

        if (StringUtils.isBlank(ncyss33)){
            ncyss33="0.00";
        }
        if (StringUtils.isBlank(qnyss33)){
            qnyss33="0.00";
        }
        if (StringUtils.isBlank(qnzxs33)){
            qnzxs33="0.00";
        }
        BigDecimal ncyss3=new BigDecimal(ncyss33);
        BigDecimal qnyss3=new BigDecimal(qnyss33);
        BigDecimal qnzxs3=new BigDecimal(qnzxs33);
        ncyss3 = ncyss3.multiply(new BigDecimal(10000));
        qnyss3 = qnyss3.multiply(new BigDecimal(10000));
        qnzxs3 = qnzxs3.multiply(new BigDecimal(10000));
        logger.info("年初预算数3:"+ncyss3+",全年预算数3:"+qnyss3+",全年执行数3:"+qnzxs3+",分值3:"+fz3+",执行率3:"+zxl3+",得分3:"+df3);


        List<Object> qtzjlist = ExcelTools.findColumnRowId(is5,"项目支出绩效自评表",null, "其他资金", 0);
        String ncyss44 = qtzjlist.get(4).toString();//年初预算数4
        String qnyss44 = qtzjlist.get(5).toString();//全年预算数4
        String qnzxs44 = qtzjlist.get(6).toString();//全年执行数4
        String fz4 = qtzjlist.get(7).toString();//分值4
        String zxl4 = qtzjlist.get(8).toString();//执行率4
        String df4 = qtzjlist.get(10).toString();//得分4
        zxl4=zxl4.replace("%","");
        fz4=fz4.replace("--","0.0");
        df4=df4.replace("--","0.0");

        if (StringUtils.isBlank(ncyss44)){
            ncyss44="0.00";
        }
        if (StringUtils.isBlank(qnyss44)){
            qnyss44="0.00";
        }
        if (StringUtils.isBlank(qnzxs44)){
            qnzxs44="0.00";
        }
        BigDecimal ncyss4=new BigDecimal(ncyss44);
        BigDecimal qnyss4=new BigDecimal(qnyss44);
        BigDecimal qnzxs4=new BigDecimal(qnzxs44);
        ncyss4 = ncyss4.multiply(new BigDecimal(10000));
        qnyss4 = qnyss4.multiply(new BigDecimal(10000));
        qnzxs4 = qnzxs4.multiply(new BigDecimal(10000));
        logger.info("年初预算数4:"+ncyss4+",全年预算数4:"+qnyss4+",全年执行数4:"+qnzxs4+",分值4:"+fz4+",执行率4:"+zxl4+",得分4:"+df4);


        List<Object> yqmblist = ExcelTools.findColumnRowId(is6,"项目支出绩效自评表",null, "预期目标", 1);
        System.err.println(yqmblist);
        String yqmb = yqmblist.size()>0 ? yqmblist.get(1).toString() : "";//预期目标  2022年3月21日16:02:41 huangwm
        String sjwcqk = yqmblist.size()>0 ? yqmblist.get(6).toString() : "";//实际完成情况  2022年3月21日16:02:41 huangwm
        logger.info("预期目标:"+yqmb+",实际完成情况:"+sjwcqk);

        params.put("xmmc",xxmc);//项目名称
        params.put("zgbm",zgbm);//主管部门
        params.put("ssdw",ssdw);//实施单位
        params.put("ncyss1",ncyss1);//年初预算数1
        params.put("ncyss2",ncyss2);//年初预算数2
        params.put("ncyss3",ncyss3);//年初预算数3
        params.put("ncyss4",ncyss4);//年初预算数4
        params.put("qnyss1",qnyss1);//全年预算数1
        params.put("qnyss2",qnyss2);//全年预算数2
        params.put("qnyss3",qnyss3);//全年预算数3
        params.put("qnyss4",qnyss4);//全年预算数4
        params.put("qnzxs1",qnzxs1);//全年执行数1
        params.put("qnzxs2",qnzxs2);//全年执行数2
        params.put("qnzxs3",qnzxs3);//全年执行数3
        params.put("qnzxs4",qnzxs4);//全年执行数4
        params.put("fz1",fz1);//分值1
        params.put("fz2",fz2);//分值2
        params.put("fz3",fz3);//分值3
        params.put("fz4",fz4);//分值4
        params.put("zxl1",zxl1);//执行率1
        params.put("zxl2",zxl2);//执行率2
        params.put("zxl3",zxl3);//执行率3
        params.put("zxl4",zxl4);//执行率4
        params.put("df1",df1);//得分1
        params.put("df2",df2);//得分2
        params.put("df3",df3);//得分3
        params.put("df4",df4);//得分4
        params.put("yqmb",yqmb);//预期目标
        params.put("sjwcqk",sjwcqk);//实际完成情况
        return params;
    }
    //sheetname--部门项目评审报告
    public Map<String,Object> getSheet9Data(Integer fileId){
        Map<String, Object> params = new HashMap<>();
        InputStream is =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is1 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is2 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is3 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is4 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is5 =  weaver.file.ImageFileManager.getInputStreamById(fileId);
        InputStream is6 =  weaver.file.ImageFileManager.getInputStreamById(fileId);

        List<Object> xmmclist = ExcelTools.findColumnRowId(is,"部门项目评审报告",null, "项目名称", 0);
        String xxmc = xmmclist.get(3).toString();//项目名称

        List<Object> xmdwlist = ExcelTools.findColumnRowId(is1,"部门项目评审报告",null, "项目单位", 0);
        String xmdw = xmdwlist.get(3).toString();//项目单位

        List<Object> zgdwjdmlist = ExcelTools.findColumnRowId(is2,"部门项目评审报告",null, "主管单位及代码", 0);
        String zgdwjdm = zgdwjdmlist.get(3).toString();//主管单位及代码
        String xmlb = zgdwjdmlist.get(5).toString();//项目类别

        List<Object> xmksnflist = ExcelTools.findColumnRowId(is3,"部门项目评审报告",null, "项目开始年份", 0);
        String xmksnf = xmksnflist.get(3).toString();//项目开始年份
        String xmzq = xmksnflist.get(5).toString();//项目周期

        List<Object> psfslist = ExcelTools.findColumnRowId(is4,"部门项目评审报告",null, "评审方式", 0);
        String psfs = psfslist.get(3).toString();//评审方式

        List<Object> zjpsjglist = ExcelTools.findColumnRowId(is5,"部门项目评审报告",null, "中介评审机构", 0);
        String zjpsjg = zjpsjglist.get(3).toString();//中介评审机构

        List<Object> psnrlist = ExcelTools.findColumnRowId(is6,"部门项目评审报告",null, "评审内容", 0);
        String psnr = psnrlist.get(2).toString();//评审内容

        params.put("xmmc",xxmc);//项目名称
        params.put("xmdw",xmdw);//项目单位
        params.put("zgdwjdm",zgdwjdm);//主管单位及代码
        params.put("xmlb",getXmtype(xmlb));//项目类别
        params.put("xmksnf",xmksnf);//项目开始年份
        params.put("xmzq",getSelectxmzq(xmzq));//项目周期
        params.put("psfs",psfs);//评审方式
        params.put("zjpsjg",zjpsjg);//中介评审机构
        params.put("psnr",psnr);//评审内容
        return params;
    }

}
